<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


  <title>LabFAQ</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>


<body>

<h1>Unix System Programming <br>
LabFAQ Page</h1>


<h2>Purpose</h2>

This page contains information which may be useful for each lab assignment.  It is organized by
Lab Assignment.  Each assignment will contain a FAQ, which is a running dialogue of questions and
problems which arise during the course of the assignment.<br>


<a name="Intro"> 
<h2>Laboratory Introduction</h2>
</a>
<a href="introlab/introlabFAQ.html">
<h3>FAQ</h3>
</a>
<a href="introlab/submit_introlab.html">
<h4>How to Submit Your Assignment</h4>
</a>


<ul>

    <li><a href="introlab/login.html">Logging In</a><br>

		A basic guide for logging into a remote machine and transferring files</li>

    <li><a href="introlab/compile.html">Basic Compiling</a><br>

	    A basic guide for compiling your C program</li>

	<li><a href="introlab/manpage.html">Manual Pages</a><br>

		A guide to the Unix command line reference manual.</li>

	<li><a href="introlab/find.html">Finding your way around</a><br>

		A guide to all that is Unix.</li>
			<li><a href="unix_tutorial/unix_toc.html">Online Unix Reference</a><br>

		An online reference that covers many useful subjects.<br>

		I will frequently link you to useful sections.</li>

	<li><a href="introlab/unix_ref_card.pdf">Unix Cheat Sheet (pdf)</a><br>

  </li>
				 	
</ul>



<a name="lab2"> 
<h2>Lab2 Assignment</h2>
</a>
<a href="lab2/LabFAQ2.html">
<h3>FAQ</h3>
</a>
<a href="lab2/submit_lab2.html">
<h4>How to Submit Your Assignment</h4>
</a>

<ul>

    <li> <a href="http://etext.lib.virginia.edu/helpsheets/regex.html">regular expressions</a><br>

     	This is a nice reference for regular expressions. </li>

	<li> The following are two of the most popular Unix text editors.
		
    <ul>

		   <li><a href="http://heather.cs.ucdavis.edu/%7Ematloff/UnixAndC/Editors/ViIntro.html">
		   		An Extremely Quick and Simple Introduction to the Vi Text Editor</a></li>

		   <li><a href="http://heather.cs.ucdavis.edu/%7Ematloff/UnixAndC/Editors/Emacs.html">
		   Emacs: The Software Engineer's ``Swiss Army Knife''</a></li>

		
    </ul>

		The references come from <a href="http://heather.cs.ucdavis.edu/%7Ematloff/unix.html">
	   Norm Matloff's Unix Tutorial Center</a>.  It is worth your time to check it out.
	</li>

		   <li><i>Effective awk Programming</i>, 
		        3rd ed., by Arnold Robbins:&nbsp;&nbsp; 			    <a href="http://www.gnu.org/software/gawk/manual/gawk.html">awk</a></li>

	 	 <li><a href="lab2/ShellScript.html">Here Documents and Shell Scripting</a><br>

	      Helpful information for exercise one of this lab assignment.</li>
   
</ul>



<a name="lab3">
<h2>Lab3 Assignment</h2>
</a>
<a href="lab3/LabFAQ3.html">
<h3>FAQ</h3>
</a>
<a href="lab3/submit_lab3.html">
<h4>How to Submit Your Assignment</h4>
</a>
<ul>

	<li><a href="lab3/programming.html">programming tips<br>
    </a>
		Some pointers on how to approach a programming assignment.</li>

	<li><a href="lab3/fileio.html">file I/O</a><br>

	     A compilation of the main Unix file I/O operations.</li>

	<li><a href="lab3/make.html">make files</a><br>

	     A helpful guide to using the make utility.  Start reading it early, and 
		 practice writing make files</li>

<li><a href="lab3/compile.html">compiling C</a><br> This is a short tutorial on compiling C code:  what the steps are, some of the useful options.</li>
<li><a href="http://users.actcom.co.il/%7Echoo/lupg/tutorials/libraries/unix-c-libraries.html#libraries">shared and dynamic libraries</a><br> A tutorial on shared and dynamic libraries to supplement the lecture.</li>

	<li><a href="lab3/gdb.html">gdb</a><br>

	    A tutorial for using the gdb debugger.</li>

	<li><a href="lab3/DeconMake.html">Deconstructing Make</a><br>

		Deconstructing Makefile used to build static libraries.<br>

		This will be especially helpful for exercise 1 of lab3.</li>
		
</ul>

<a name="lab4">
<H2>Lab4 Assignment</H2>
</a>
<a href="lab4/LabFAQ4.html"><H3>FAQ</H3></A>
<a href="lab4/submit_lab4.html"><H4>How to Submit Your Assignment</H4></a>
<BR>

<a name="lab5"> 
<h2>Lab5 Assignment</h2>
</a>
<a href="lab5/LabFAQ5.html">
<h3>FAQ</h3>
</a>
<a href="lab5/submit_lab5.html">
<h4>How to Submit Your Assignment</h4>
</a>
<ul>

	<li> <a href="lab5/fork.html">Forking children and Creating Zombies</a><br>

		  I hope Zombies caught your attention!!  This tutorial contains some
		  essential information on <code>fork</code> and <code>wait</code> (and of course Zombies.)  </li>

</ul>


<a name="lab7"> 
<h2>Lab7 Assignment</h2>
</a>
<a href="lab7/LabFAQ7.html">
<h3>FAQ</h3>
</a>
<a href="../labs/lab7.IPC.html">
	
<h4>Lab7 Assignment</h4>
</a>
<ul>

	<li> <a href="http://www.cim.mcgill.ca/~franco/OpSys-304-427/lecture-notes/node31.html">
			System V Semaphores</a><br>

		  A reference for using Semaphores with useful code. </li>

	<li><a href="lab7/IPC.html">Process Cooperation</a><br>

		 A tutorial on Interprocess Communication introducing the <em>Consumer/Producer paradigm</em>
		 of process cooperation and the <em>Bounded Buffer Problem</em>.</li>

	<li><a href="lab7/Semaphores.html">Process Synchronization</a><br>

		Using System V semaphores to sychronize processes and solve the 
		<em>Bounded Buffer Problem</em>.</li>

	<li> <a href="http://www.cs.nmsu.edu/%7Ejcook/Tools/pthreads/examples.html">
	 	Producer/Consumer Example Code</a>
	     This is a sample program using the producer/consumer solution with 
	     semaphores.  It is an example using POSIX threads (see Lab7) </li>
		 	  
</ul>



<a name="lab8"> 
<h2>Lab8 Assignment</h2>
</a>
<comment> <a href="lab8/LabFAQ8.html">
<h3>FAQ</h3>
</a> </comment>
<a href="../labs/LAB8/lab8new.html">
	
<h4>Lab8 Assignment</h4>
</a>

<ul>

	<li><a href="http://beej.us/guide/bgnet/">
		Beej's Guide to Network Programming </a><br>

		This is the best source for Unix Socket Programming to supplement the lecture notes.</li>

	<li><a href="http://developerweb.net/viewforum.php?id=70"> Unix Socket Programming FAQ</a></li>
		<li><a href="http://www.rfc-editor.org/rfc/rfc768.txt">UDP Protocol</a> </li>

	<li><a href="http://www.rfc-editor.org/rfc/rfc793.txt">TCP Protocol</a></li>

	<li><a href="http://www.rfc-editor.org/rfc/rfc791.txt">IP Protocol</a></li>
	
</ul>


<a name="lab9"> 
<h2>Lab9 Assignment</h2>
</a>
<a href="lab9/LabFAQ9.html">
<h3>FAQ</h3>
</a>
<a href="../labs/lab9.pThreads.html">
	
<h4>Lab9 Assignment</h4>
</a>

<ul>

	<li><a href="http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN.html">
	The best of the online sources I have seen</a></li>

	<li> <a href="http://www.cs.nmsu.edu/%7Ejcook/Tools/pthreads/examples.html">
	 	Producer/Consumer Example Code</a>
	     This is a sample program using the producer/consumer solution with 
	     semaphores.  It is an example using POSIX threads (see Lab7) </li>



</ul>
		
</body>
</html>
